package com.example.service.impl;

import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.common.ResultCode;
import com.example.dao.*;
import com.example.entity.Kucunxinxi;
import com.example.exception.CustomException;
import com.example.service.KucunxinxiService;
import com.example.vo.KucunxinxiVo;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import java.util.Map;

@Service("kucunxinxiService")
public class KucunxinxiServiceImpl extends ServiceImpl<KucunxinxiDao, Kucunxinxi> implements KucunxinxiService {

    @Resource
    private KucunxinxiDao kucunxinxiDao;

    public Kucunxinxi add(Kucunxinxi kucunxinxi) {
		
	   //youquchong1
        kucunxinxi.setAddtime(new Date());
        kucunxinxiDao.insert(kucunxinxi);
        return kucunxinxi;
    }
	
	@Override    public List<Map<String,Object>> kucunxinxi_tj_leibie() {    List<Map<String,Object>> returnMap = kucunxinxiDao.kucunxinxi_tj_leibie();    return returnMap;    }    
	
    public void delete(Long id) {
        kucunxinxiDao.deleteById(id);
    }
	

    public void update(Kucunxinxi kucunxinxi) {
        //youquchong2
        kucunxinxiDao.updateById(kucunxinxi);
    }
	
	public void updateByzhujian(Kucunxinxi kucunxinxi) {
        LambdaQueryWrapper<Kucunxinxi> wrapper = Wrappers.lambdaQuery();
        wrapper.eq(ObjectUtils.isNotEmpty(kucunxinxi.getBianhao()), Kucunxinxi::getBianhao,kucunxinxi.getBianhao());

        kucunxinxiDao.update(kucunxinxi, wrapper);
    }
	
	@Override
    public List<Map<String, Object>> daochuexcel() {
        return kucunxinxiDao.daochuexcel();
    }

    @Override
    public Kucunxinxi findById(Integer id) {
        return kucunxinxiDao.selectById(id);
    }
	
	@Override
    public Kucunxinxi getByzhujian(String zhujian) {
        return kucunxinxiDao.getByzhujian(zhujian);
    }

    public KucunxinxiVo findPage(KucunxinxiVo kucunxinxiVo) {
        LambdaQueryWrapper<Kucunxinxi> wrapper = Wrappers.lambdaQuery();
		wrapper.like(ObjectUtils.isNotEmpty(kucunxinxiVo.getBianhao()), Kucunxinxi::getBianhao,kucunxinxiVo.getBianhao());        wrapper.like(ObjectUtils.isNotEmpty(kucunxinxiVo.getMingcheng()), Kucunxinxi::getMingcheng,kucunxinxiVo.getMingcheng());        wrapper.like(ObjectUtils.isNotEmpty(kucunxinxiVo.getLeibie()), Kucunxinxi::getLeibie,kucunxinxiVo.getLeibie());        wrapper.like(ObjectUtils.isNotEmpty(kucunxinxiVo.getJiage()), Kucunxinxi::getJiage,kucunxinxiVo.getJiage());        wrapper.like(ObjectUtils.isNotEmpty(kucunxinxiVo.getKucun()), Kucunxinxi::getKucun,kucunxinxiVo.getKucun());        wrapper.like(ObjectUtils.isNotEmpty(kucunxinxiVo.getTupian()), Kucunxinxi::getTupian,kucunxinxiVo.getTupian());        wrapper.like(ObjectUtils.isNotEmpty(kucunxinxiVo.getBeizhu()), Kucunxinxi::getBeizhu,kucunxinxiVo.getBeizhu());        
		wrapper.orderByDesc(Kucunxinxi::getId);
        Page<Kucunxinxi> page = new Page<>(kucunxinxiVo.getCurrent(),kucunxinxiVo.getCurrentNum());
        kucunxinxiDao.selectPage(page,wrapper);
        List<Kucunxinxi> kucunxinxis = page.getRecords();
        kucunxinxiVo.setList(kucunxinxis);
        kucunxinxiVo.setPages(page.getPages());
        kucunxinxiVo.setTotal(page.getTotal());
        kucunxinxiVo.setCurrent(page.getCurrent());
        kucunxinxiVo.setCurrentNum(page.getSize());
        return kucunxinxiVo;
    }

    @Override
    public void deleteList(List<Kucunxinxi> list) {
        List<Integer> ids =  list.stream().map(Kucunxinxi::getId).collect(Collectors.toList());
        kucunxinxiDao.deleteBatchIds(ids);
    }
	
	
	
	
	
	//youxxianxci
}
